home *** CD-ROM | disk | FTP | other *** search
- Short: V2.17 Multi filesys+.device, win95+mac++
- Author: frans@xfilesystem.freeserve.co.uk (francis swift)
- Uploader: frans@xfilesystem.freeserve.co.uk (francis swift)
- Type: disk/misc
- Replaces: xfs.lha
-
- XFileSystem Version 2.17
-
- Main Components:
-
- L: xfsd (FD0: / FILE0: etc file system handler)
- devd (DEV: handler to make devices look like files)
-
- DEVS: fd.device (FD0: multi-format track device)
- file.device (FILE0: makes disk file images look like real disks)
- cw.device (CW0: front end for multidisk.device)
-
- plus either mountlist.xfsd (for your devs: directory on <= WB2)
- or FD0, FILE0 etc (for your devs:DOSDrivers directory on WB3).
-
- New this release:
-
- * xfsd mounts multiple partitions
- * devd (DEV:) can access dos devices (eg DEV:DF0)
- * Catweasel support (via new cw.device)
- * .adz / .pkd files supported by file.device
- * more flexible flags format for fd.device
-
- Current xfsd status:
-
- readdir read write delete rename readpartition format
- amiga + + + + + + ?
- msdos / win95 + + + + + +
- mac + + +
- ql + + + + + ?
- minix + + + + +
- archimedes + +
- cpm + +
- 1541 / 1581 + +
- spectrum + +
-
- Current fd.device status:
-
- read write trackformat
- Amiga tracks + + +
- Diskspare 80/82 trk + + +
- mfm (pc etc) + + +
-
- Current file.device status:
-
- read write format
- flat files (.adf etc) + +
- .dms files +
- .adz/.gz files +
- .pkd files + ?
- pctask/janus hardfiles + +
-
- Formatting of disks is currently only at the beta stage, and is
- only available on Amiga and QL disks. Remember that as far as the
- handler is concerned, formatting means writing a new filesystem
- onto the disk, and doesn't actually involve low level writing of
- new tracks, this being done by the Format program directly to the
- low level exec device. Of course, the fd.device can use any type
- of disk so if the disk you use is in the wrong format (say it's
- a 720k disk) and you write an inappropriate filesystem to it
- (eg FFS) then only xfsd will be able to use it. So make sure
- you use the devio command to tell fd.device to low level format
- the disk first (read the guide).
-
- Of course you can still copy whole disk images to a blank disk
- if you prefer (using DEV:fd.device,unit,size - see the guide),
- and currently that is the only way to format disks for which xfsd
- doesn't support formatting.
-
- See the xfs.guide 'usage' section for further info (and the faq).
-
- ---------------------------- xfs217 -----------------------------
-
- fd.device V42.88 fixes PostWriteDelay bug (which probably didn't
- affect anything) and also the motor speed up delay for write
- operations has been increased to 200ms (seems to work ok now).
- Also implemented new flags scheme to allow more flexible format
- selection, see the guide for more details.
-
- devd (DEV:) can now read dos devices (eg DEV:FD0). Actually, it
- just peeks the DeviceNode/FSSM/DosEnv for the information it
- requires and accesses the exec device directly itself. Also added
- the ability to set the start position and length, see the guide
- for more details.
-
- file.device V42.21 can now directly access GZip'ed disk images.
- It doesn't matter whether the files are called .adz or .gz as the
- files are recognised by their content. It can also now access
- PackDev (.pkd) files. As these use XPK for crunching this must
- be installed to fully utilise this facility.
-
- Renamed mount.xfsd to mountlist.xfs and merged in mount.dev, so
- there's only one mountlist file (if you're not using WB3).
-
- Finally got round to implementing the internal multi-threading so
- now ALL partitions on a device are mounted. Partition names are
- used as device names if possible, but where they don't exist such
- as on fdisk'ed media then default names are generated. So if you
- for instance mount ZIP0: and insert partitioned zip media you will
- get new devices ZIP0A: ZIP0B: etc. If the device names clash with
- any existing devices then a further default is generated.
-
- Added Catweasel support via new cw.device, which acts as a front-end
- to multidisk.device to allow all disk types to work through a single
- device. See the CW0: and CW1: entries in mountlist.xfs and their
- equivalent WB3 icons. Note that these entries use the new startup
- string / tooltype.
-
- Added new general device entry SCSI0: which can be made to work
- with any size / geometry device, just change the startup string
- to the exec device / unit required. It uses a new facility in xfsd
- which retrieves the device geometry using SCSI commands if the usual
- trackdisk-style geometry isn't available. So there should really be
- no need for separate ZIP/JAZ etc entries from now on.
-
- Improved disk change handling in file.device. Now the file requester
- always appears if you press the shift-alt-numkey for the particular
- unit. I meant to do this ages ago but forgot - thanks Linus.
-
- Internally re-organised the file.device to match the way both
- xfsd and fd.device work, with regard to adding new facilities. This
- should allow me to more quickly implement new file formats.
- Internally the fd.device has always worked via a sort of class system,
- with a list of track codecs for the different encoding schemes,
- MFM for PC disks etc, MFMA for Amiga disks, and originally there was
- a GCR codec which was intended for Apple disks, but that has been
- temporarily removed. In addition, xfsd has an internal list of
- classes, one for each filesystem type. On the other hand file.device
- was a mess, with each new facility hacked onto the existing ones.
- Anyway, now file.device is in better shape, and in particular the
- interface to each file type codec is pretty much finalised, I may
- release some source to show how to implement a file codec.
- On the other hand, the xfsd API is in the process of being changed,
- so it will be a while before I can release any source to allow
- external additions to it. But rest assured, it has always been my
- intention to implement the filesystems as external plug-ins, even
- the existing ones, since most people don't need to read QL or Minix
- disks.
-
- Added new control word (PARTITION=) to select the partition number
- to mount on partitioned media, so now you can use a mountlist
- using the whole disk and let xfsd find the partition on it without
- you knowing the exact cylinders etc. This should work ok for most
- PC and Amiga disks, and Mac disks that don't have device driver
- blocks at the start (as I don't have info on these at present).
-
- Added formatting of Amiga disks, though this should be considered
- beta only at present. Also found slight error in delete method
- of the Amiga disk class, though it hadn't shown up in actual use.
-
- Fixed error in QL disk class, everything worked on the disk itself
- but the free sectors value wasn't being updated on the system copy
- so Info/DiskInfo reports were wrong.
-
- Fixed bug in Minix - well re-fixed something I accidentally broke
- in the name handling when I was starting to add 30 character names
- (which isn't quite finished yet). Note that the code for the Minix
- handler has been implemented in classic unix style, which means
- that only BigEndian disks (ie written on some sort of 68000 machine)
- will be recognised (at present). I'll fix this when I get round to
- implementing ext2fs and other both-endian file systems.
-
- Fixed semaphore race bug in file.device which caused it to crash
- when used with rom FastFileSystem (though why you'd want to I can't
- imagine). Also added ability to use protect flags on disk image
- files, so now if you write-protect a file, when you select it with
- file.device it will appear (and work) as a write-protected disk.
- Also the ENV: variable name for each unit (if you use this) has
- changed. It was file/unit#, now changed to file.device,# ie not
- in a sub-directory. So now file.device unit 0 will look for the
- ENV: variable file.device,0 (which is in fact its task name).
-
- ---------------------------- xfs216 -----------------------------
-
- Fixed slight bug in clearing newly allocated directory blocks in
- the PC disk handler. This led to bogus entries sometimes showing
- up with weird names. There was only a one in sixteen chance of
- this occuring, and it never occured on 1440k disks, so I'd never
- seen it. Anyway, it should be fixed now.
-
- Somehow the JAZX entry in DOSDrivers went missing. Now included.
-
- The disk type numbers for Minix have changed to accommodate the
- long file name variants:
-
- MNX\0 Original Minix, 14 character names
- MNX\1 Original Minix, 30 character names
- MNX\2 Minix Version 2, 14 character names
- MNX\3 Minix Version 2, 30 character names
-
- Note that of the above only MNX\0 is supported at present.
-
- Due to internal re-ordering of the individual handlers, the flag
- bits got messed up. So I got rid of them. The new scheme uses the
- control field string to enable/disable particular handlers. See
- the explanation in the guide (usage > Workbench) or mount.xfsd.
-
- There is a new utility called dospkt in the C directory, also
- an upgraded version of the devio utility. These can be used to
- instruct devices/handlers to do low/high level formatting of
- disks (amongst other things). As an experiment I've enabled
- the disk format code in the QL handler, so using devio/dospkt
- you should be able to create valid QL disks. For the next release
- I'll probably add PC/Minix disk formatting.
-
- Note that the usage of devio has changed so if you are using it
- in scripts you will need to change them.
-
- --------------------------- xfs215 ------------------------------
-
- Added support for 1581 disks (read only at present). These disks
- sometimes have what are loosely referred to as 'partitions', really
- fixed length directories. These are accessed just like directories.
-
- You can now use fd.device to 'format' disks. That is, you can use
- the DEV:fd.device,<unit>,<flags> pseudo file to write out disk
- images of a particular format. So if you have a blank disk, read
- it in using
-
- copy DEV:fd.device,0 ram:temp
-
- This will copy whatever disk is in drive 0 into file 'ram:temp'.
- You can then write it out again using, for instance
-
- copy ram:temp DEV:fd.device,0,880 ; if it is an amiga disk
- copy ram:temp DEV:fd.device,0,720 ; for a pc / ql / minix disk
-
- etc. See further explanations in 'usage > fd.device' in the guide.
-
- To match up with the above, devd (the DEV: handler) has been
- slightly amended, as has the devio utility. You will also find
- a later version of the XL friendly fd.device in devs/storage.
-
- While rewriting fd.device I took some time to examine the way
- diskspare.device generated checksums (which was the reason for
- fd.device not being able to write to these disks properly). I
- also implemented an additional track scan to determine whether
- a disk has more than 80 tracks. So now there should be full
- support for all the different diskspare permutations. There is
- also a new version of the mfm utility (for use with rawpatch)
- to allow track checksum verification.
-
- --------------------------- xfs214 ------------------------------
-
- Completed MINIX handler. Of course there may be some hidden bugs
- so it should be considered just a beta version for now.
-
- Patched disk type into dl_DiskType. Only reason it hadn't been
- done till now was I thought I'd already done it. So now you will
- get sensible results from Stephan Rupprecht's Info program.
- Anyway, it gives me an excuse to explain the disk types that
- are returned.
-
- Amiga DOS\0
- DOS\1 FFS
- DOS\2 Int
- DOS\3 Int FFS
- DOS\4 DC
- DOS\5 DC FFS
-
- MSDOS/W95 MSD\0
-
- MAC MAC\0
-
- Minix MNX\1 (and later maybe MNX\2)
-
- QL QL5A 720k (and ED disks)
- QL5B 1440k
-
- Spectrum ZXS\0 Disciple
- ZXS\1 UniDos
- ZXS\2 SamDos
- ZXS\4 Opus (180k)
-
- Archimedes ARMD
- ARME
-
- CP/M CPM\2 (and later ZXS\3 for Plus3Dos)
-
- C64 1541 (and later 1581)
-
- These will (eventually, NOT YET) be the dos types passed to the
- Format() command to select the file system.
-
- Also, the file.device has been updated to allow it to work better
- with devd (DEV:) so that you get the chance to select a file
- before the DEV: device asks if there's a disk (file) in the 'drive'.
-
- Now that I have some 1581 disks to experiment with I should be
- able to add handling of these to xfs. Since these disks use
- side skewing (quick explanation - the top is on the bottom), I
- will need to modify fd.device to accept this format. Also, although
- the physical sectors are 512 bytes, the logical sectors are only
- 256 bytes, which will make sector allocation complicated, so
- for the moment support will be read only.
-
- Finally I tidied up some clean-up routines so some random crashes
- on removal of disks should disappear.
-
- --------------------------- xfs213 ------------------------------
-
- Added a couple of extra disk types to existing handler modules,
- specifically Archimedes D type disks, and Spectrum 180k (Opus
- Discovery) type disks. Note that both use unusual sector sizes,
- the Archimedes D using 1024 byte sectors, and the Spectrum 180k
- disks using 256 byte sectors (it's also 40 track single sided!).
- Luckily fd.device sorts all this out transparently.
-
- One more technical point. Whenever a disk is recognised by xfsd
- the disk dos type is now written into de_DosType in the environment
- table of the device entry in the dos list. This is to allow
- anyone using the Info() call (which xfsd implements like most
- handlers by returning ID_DOS_DISK in id_DiskType for disks it
- recognises) to access the true disk type.
-
- Updated crc utility to fix a slight bug.
-
- There's a slight change to the flags setting in the mountlists,
- which should be backwards compatible, see mount.xfsd.
-
- Up till this release it was possible to open directories as if
- they were files. This was a side effect of the internal
- implementation which took advantage of the file-like structure
- of directories in certain filesystems (QDOS,MSDOS,RISCOS etc).
- I left this in so it would be possible to write external
- utilities to access filesystem-specific information that would
- otherwise be inaccessible via xfsd. Unfortunately, there are
- too many badly written programs out there that, when given no
- file name on the command line, open the empty string by mistake.
- Of course, this means the current directory, so they get a
- 'wrong type' error. With xfsd, they would get no error, and
- depending on the way the filesystem sets the file size for the
- directory, may try to read the whole disk into memory, or 4GB,
- or any random number. Anyway I've disallowed this again.
-
-
- ============================= Archive contents =============================
-
- Original Packed Ratio Date Time Name
- -------- ------- ----- --------- -------- -------------
- 628 254 59.5% 05-Feb-99 03:26:52 xfs.info
- 628 274 56.3% 28-Jun-98 18:02:58 +C.info
- 12148 8299 31.6% 29-Apr-98 07:21:22 +crc
- 450 176 60.8% 28-Jun-98 18:02:58 +crc.info
- 16040 8662 45.9% 24-Jun-98 03:03:56 +devio
- 450 176 60.8% 28-Jun-98 18:02:58 +devio.info
- 12188 6795 44.2% 28-Jun-98 04:40:14 +dospkt
- 450 184 59.1% 28-Jun-98 18:02:58 +dospkt.info
- 20584 11728 43.0% 10-Mar-99 06:47:54 +mfm
- 450 182 59.5% 28-Jun-98 18:02:58 +mfm.info
- 16088 9388 41.6% 07-Mar-99 22:01:12 +rawpatch
- 450 176 60.8% 28-Jun-98 18:02:58 +rawpatch.info
- 28152 18091 35.7% 11-Feb-98 23:24:16 +x-code
- 450 178 60.4% 28-Jun-98 18:02:58 +x-code.info
- 48772 26633 45.3% 22-Aug-98 19:21:34 +x-hfsdir
- 450 178 60.4% 28-Jun-98 18:02:58 +x-hfsdir.info
- 628 256 59.2% 12-Feb-98 08:35:58 +Devs.info
- 5900 3582 39.2% 12-Mar-99 06:05:50 +cw.device
- 450 171 62.0% 07-Mar-99 06:37:28 +cw.device.info
- 628 272 56.6% 03-Jan-99 17:35:58 +DOSDrivers.info
- 629 387 38.4% 30-Dec-98 22:07:10 +CW0
- 525 305 41.9% 03-Jan-99 17:35:58 +CW0.info
- 635 389 38.7% 30-Dec-98 22:07:02 +CW1
- 531 309 41.8% 03-Jan-99 17:35:58 +CW1.info
- 117 108 7.6% 12-Feb-98 07:55:22 +DEV
- 481 270 43.8% 03-Jan-99 17:35:58 +DEV.info
- 817 466 42.9% 28-Jun-98 17:38:52 +FD0
- 492 276 43.9% 03-Jan-99 17:35:58 +FD0.info
- 808 459 43.1% 28-Jun-98 17:39:10 +FD1
- 492 274 44.3% 03-Jan-99 17:35:58 +FD1.info
- 531 320 39.7% 28-Jun-98 17:39:28 +FILE0
- 492 277 43.6% 03-Jan-99 17:35:58 +FILE0.info
- 531 319 39.9% 28-Jun-98 17:39:58 +FILE1
- 492 272 44.7% 03-Jan-99 17:35:58 +FILE1.info
- 716 402 43.8% 28-Jun-98 17:40:20 +JAZX
- 529 306 42.1% 03-Jan-99 17:35:58 +JAZX.info
- 605 365 39.6% 05-Feb-99 01:47:18 +SCSI0
- 519 301 42.0% 03-Jan-99 17:36:40 +SCSI0.info
- 861 493 42.7% 04-May-98 16:58:16 +FX0
- 492 274 44.3% 13-Jan-95 00:38:04 +FX0.info
- 852 486 42.9% 04-May-98 16:58:36 +FX1
- 492 271 44.9% 13-Jan-95 00:38:04 +FX1.info
- 709 396 44.1% 28-Jun-98 17:43:22 +ZIPX
- 533 309 42.0% 03-Jan-99 17:35:58 +ZIPX.info
- 25992 14188 45.4% 12-Mar-99 04:23:36 +fd.device
- 450 171 62.0% 12-Feb-98 08:50:00 +fd.device.info
- 43152 22668 47.4% 24-Feb-99 02:59:40 +file.device
- 450 171 62.0% 12-Feb-98 08:50:00 +file.device.info
- 8970 2539 71.6% 07-Mar-99 02:34:58 +mountlist.xfs
- 450 201 55.3% 12-Feb-98 08:50:00 +mountlist.xfs.info
- 628 254 59.5% 07-Mar-99 06:37:56 +Storage.info
- 24972 13671 45.2% 12-Mar-99 04:20:02 +fd.device.XL
- 450 171 62.0% 12-Feb-98 08:50:00 +fd.device.XL.info
- 628 258 58.9% 12-Feb-98 08:35:58 +L.info
- 8720 4960 43.1% 07-Mar-99 04:50:38 +devd
- 450 171 62.0% 12-Feb-98 08:49:38 +devd.info
- 117804 63577 46.0% 12-Mar-99 02:14:22 +xfsd
- 450 171 62.0% 12-Feb-98 08:49:38 +xfsd.info
- 77310 29997 61.1% 24-Mar-99 01:56:06 +xfs.guide
- 469 242 48.4% 12-Feb-98 08:35:58 +xfs.guide.info
- 14855 6170 58.4% 23-Mar-99 23:27:04 +xfs.readme
- 463 238 48.5% 12-Feb-98 08:35:58 +xfs.readme.info
- -------- ------- ----- --------- --------
- 506528 263507 47.9% 24-Mar-99 22:05:26 62 files
-